home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / diskmags / amiga_9301b.lha / Suchalgorithmen / Listing 5 < prev    next >
Encoding:
Text File  |  1992-12-15  |  483 b   |  25 lines

  1. /* So einfach ist der extrem leistungsfähige
  2.  * Boyer-Moore-Algorithmus zu implementieren
  3.  */
  4.  
  5. extern long Skip[];
  6.  
  7. long BM_Search(unsigned char *Puffer,
  8.                unsigned char *Pattern,
  9.                long size)
  10. {
  11.   long i,j,M=strlen(Pattern),N=size,t;
  12.  
  13.   for( i=M-1,j=M-1; j>=0; i--, j-- ) {
  14.     while( Puffer[i] != Pattern[j] ) {
  15.       t=Skip[Puffer[i]];
  16.       i+=(M-j>t)?M-j:t;
  17.       if( i>=N )
  18.         return N;
  19.       j=M-1;
  20.     }
  21.     M=strlen(Pattern);
  22.   }
  23.   return i;
  24. }
  25.